\section{Thread\-Synch/Exception\-Expecter.h File Reference}
\label{_exception_expecter_8h}\index{ThreadSynch/ExceptionExpecter.h@{ThreadSynch/ExceptionExpecter.h}}
{\tt \#include \char`\"{}Throw\-Hooked.h\char`\"{}}\par


Include dependency graph for Exception\-Expecter.h:

This graph shows which files directly or indirectly include this file:\subsection*{Namespaces}
\begin{CompactItemize}
\item 
namespace {\bf Thread\-Synch}
\item 
namespace {\bf Thread\-Synch::details}
\end{CompactItemize}
\subsection*{Defines}
\begin{CompactItemize}
\item 
\#define {\bf EXCEPTION\_\-TYPE}(n)
\item 
\#define {\bf CATCH}(rep2\_\-z, Expected\-Id, rep2\_\-data)
\item 
\#define {\bf THROWEX}(rep2\_\-z, Expected\-Id, rep2\_\-data)
\item 
\#define {\bf BOOST\_\-PP\_\-ITERATION\_\-PARAMS\_\-1}~(3,(0,THREADSYNCH\_\-MAX\_\-EXPECTED\_\-EXCEPTIONS,\char`\"{}Exception\-Expecter\_\-template.h\char`\"{}))
\end{CompactItemize}
\subsection*{Enumerations}
\begin{CompactItemize}
\item 
enum {\bf Thread\-Synch::details::Caught\-Exception\-Type} \{ {\bf Thread\-Synch::details::Caught\-Exception\-Type\_\-None}, 
{\bf Thread\-Synch::details::Caught\-Exception\-Type\_\-Expected}, 
{\bf Thread\-Synch::details::Caught\-Exception\-Type\_\-Unknown}
 \}
\end{CompactItemize}


\subsection{Define Documentation}
\index{ExceptionExpecter.h@{Exception\-Expecter.h}!BOOST_PP_ITERATION_PARAMS_1@{BOOST\_\-PP\_\-ITERATION\_\-PARAMS\_\-1}}
\index{BOOST_PP_ITERATION_PARAMS_1@{BOOST\_\-PP\_\-ITERATION\_\-PARAMS\_\-1}!ExceptionExpecter.h@{Exception\-Expecter.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define BOOST\_\-PP\_\-ITERATION\_\-PARAMS\_\-1~(3,(0,THREADSYNCH\_\-MAX\_\-EXPECTED\_\-EXCEPTIONS,\char`\"{}Exception\-Expecter\_\-template.h\char`\"{}))}\label{_exception_expecter_8h_04db94d718693bbf251bbd7eca12be84}


\index{ExceptionExpecter.h@{Exception\-Expecter.h}!CATCH@{CATCH}}
\index{CATCH@{CATCH}!ExceptionExpecter.h@{Exception\-Expecter.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define CATCH(rep2\_\-z, Expected\-Id, rep2\_\-data)}\label{_exception_expecter_8h_4a4fc3d118be80482e0df863894f68ff}


\textbf{Value:}

\begin{Code}\begin{verbatim}/*****************************************/\
                catch(EXCEPTION_TYPE(ExpectedId)& e)                                                                                            \
                {                                                                                                                                                                       \
                        m_caughtExceptionType = details::CaughtExceptionType_Expected;                                  \
                        m_rethrowFunctor = boost::bind(throwEx ## ExpectedId, e, _1);                                   \
                        m_onCompleteFunctor(m_caughtExceptionType);                                                                             \
                        return;                                                                                                                                                 \
                }
\end{verbatim}\end{Code}
\index{ExceptionExpecter.h@{Exception\-Expecter.h}!EXCEPTION_TYPE@{EXCEPTION\_\-TYPE}}
\index{EXCEPTION_TYPE@{EXCEPTION\_\-TYPE}!ExceptionExpecter.h@{Exception\-Expecter.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define EXCEPTION\_\-TYPE(n)}\label{_exception_expecter_8h_749b107121d935e89f9d07b857c40878}


\textbf{Value:}

\begin{Code}\begin{verbatim}/***********************************************************/\
        typename boost::mpl::at                                                             \
        <                                                                                   \
            typename boost::mpl::sort                                                       \
            <                                                                               \
                E,                                                                          \
                boost::mpl::not_                                                            \
                <                                                                           \
                    boost::is_base_and_derived                                              \
                    <                                                                       \
                        boost::mpl::_1,                                                     \
                        boost::mpl::_2                                                      \
                    >                                                                       \
                >                                                                           \
            >::type,                                                                        \
            boost::mpl::int_<n>                                                             \
        >::type
\end{verbatim}\end{Code}
\index{ExceptionExpecter.h@{Exception\-Expecter.h}!THROWEX@{THROWEX}}
\index{THROWEX@{THROWEX}!ExceptionExpecter.h@{Exception\-Expecter.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define THROWEX(rep2\_\-z, Expected\-Id, rep2\_\-data)}\label{_exception_expecter_8h_e7e72ff604e8a4d5c04024b5f9068893}


\textbf{Value:}

\begin{Code}\begin{verbatim}/***************************************/\
                static void rep2_data ## ExpectedId(const EXCEPTION_TYPE(ExpectedId)& exObj,            \
                                                                                        boost::function<void()>& onDestroyException)    \
                {                                                                                                                                                                       \
                        details::throwHooked(exObj, onDestroyException);                                                                \
                }
\end{verbatim}\end{Code}
